{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2409610c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "from PIL import Image\n",
    "import os\n",
    "import sys\n",
    "\n",
    "notebook_dir = os.getcwd()\n",
    "project_root_path = os.path.dirname(notebook_dir)\n",
    "sys.path.insert(0, project_root_path)\n",
    "\n",
    "from src.config import PROJECT_ROOT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8e0235b5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'entire-object': 'iVBORw0KGgoAAAANSUhEUgAAAY8AAAH0AQMAAAD/sTOmAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO/WQQAAAAJ0Uk5TAP9bkSK1AAAE+UlEQVR4nO3cPXLrOBAEYKkUKNQRcBRcazPgaDgKjrDhBq7HtfVDUkCzZ5qStcFiQtf7bKmnDempSB8OY8aMGTNmzJgxY8aMGTNmzJgx/7+5FJmEf2QSp6ySafpbFMdp+iOS8zRNVSOXb/KlkfhNpiKR9EO0nKfrKOJ0I0rO5xtRcg43ouQc70TI+S6ER3bUyelB/DFfZpK9JOgkzaR4ySzci1mevbsyZ50sgbn7HxfibcwSmHf9x0kmq8C8jbmsSXaRoJO4JsVF1sLXmOMTca3/rJOnwHyNeQrM15iokyfhasxzYK7GnBqSbXLRSWhIsUlsSLVJkkkbmKMxbWCOxpxbYq+/DcxB2sAcjWkDsxvTBWavvwvMJl1gNmlL6SBdYDbpAzNJL6yQQWAWAYFZpA+sGOIdv5LZJmrAoJT2D2kDc5yubWAOEhriOPbbwByvR+2zt8mOY69rWDVJ1zCbtIE5XiiiTlphV6w/9swf0v8Wm6QLzK5YF9iO1wmbdE/FrFgfmFmxPjCT9MdetUgXmH7sOUjqSDbEe15YrcfVB2ZWrH+dMEmfsVmxPmOzYn3GJukDsyoG1lINAtZiEfDyXQwC3u9YpM94z/sdQ+x4vwMytioGMrYqBjK2CMjYqljoiVWxqJPUk2qQXlh9AWuxCHrnmjlB71wNAtZiVSz0wqpY1Al4XEbFUMZGxVDGBkEZGxVDGVdOQMYWARlbFUs6AcKoGFqLUTG0FoOgtRgVQ2sxKhZ0EgExKpYA4RWDGXMCM66UoIyNvqCMDYIyNiqGMjYIytioGBK8YnAtnMC18IrBtfCKwbVwEhDhFYuIVEqSTpDgFYNr4X2Ba+EEroVXDBLeF7hJTgIivGIREd6XpBMYGK0Y3mRlBG+SErzJwghcCycBksxIhIQJvBZOoKAVw2uhFdtB8CZpxfAmacXwJikJkFRGIiSFkaQTKGjF8FpoX/BaKMFroRXDa6F9CTqJkNCKYUL7knQCBa3YxiYLIRubZARvklYMb5L2JegkQkErliChfcGPi5GNtbCKbayF9WVjLTtIJWRjk4WQoJOISSYkYULExiYZ2dgkq9jGJllfNtbCyMZaWMU2COvL+0glJGBSPkIyIRETIt5H6CmGCT3F0rsIfaHE5L9/oWzJV5BJuf2WFiKa0+Lr/oXsJ+Weh5/8bPD6ZNhTeSb1cDty6CafjrE/j29S3KRev5SM/4M+kds3D8ZHA08kX790Vj5HvJGj8okw/6eIOK9eXB+WzssqXyTO6z3XxHlVaeiW/9uk6CT7SJSX/yLxXh+d5OWvifdi39eI9ypkfflrUj5Csk+sz1fnD1kR7/J3kNVh6e3LiniXv+Oq9dcudK86KTrJv0dW56tTrIj7ZoqFuO/yCK8Q9800C3HfGLOQ6iXxFVJ0knXiFavzVSf+m29m4r8rSF/+S8R/I5W+/OV8LR8hWSdesZyvO+682kH8fZkPS//yZ+Jf/iukusl8vhad5I8Qt5jPV+G2wwcRbiHcQaLcl5kId10+SP1VkuS+zCTrxC/2EL0vD6Lc2qsv/7ifCH15kKqT4ien/STrxC8eRFn+SV/+jpunj/JaHqQI5CBnfCfazfNJDWzXTe1RDWzX3fZBDsz+WLOfkxzYdTHqX1sI+l9OOKmBHX6WmVUSxMC+56T+RYfv+UsnY8aMGTNmzJgxY8aMGTNmzJhPzL+iqORqawqvwAAAAABJRU5ErkJggg==', 'tail': 'iVBORw0KGgoAAAANSUhEUgAAAY8AAAH0AQMAAAD/sTOmAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO/WQQAAAAJ0Uk5TAP9bkSK1AAAB60lEQVR4nO2ZsW3DMBQFSTAAS47AUTiaOJpG8QgpUwRhYkvqdR9xd9cfYOEeBVlKSURERERERERERERERERERERERERERERERET+gfqJlb4mVbb1DY28sFLX+oFK58q21mLG36VQpTyViZTGlcGVp7F2YhSuvC5lPd6s9JeC5j+iyhdRtqiCDszCSj4UcmACSgkr5IxVrrRTmW9Vely5b5yrRMrGu2x8Y+fvIuM/FXAqc1x53FeuVe73lWuV863Ktcr7xqWQ+J3HHzx+QNlw/Et5AIXHvyY236oE7pWBO3Ll8VtYIfE7j995/IHjXxMLKBMoPH7i8ePPCSR+4fErj195/BZWdqB0Hn/w+AOXPFcZUAJPryR+5vEDSuHxC49fefzG4weUzuN3Hn/g+OfE0D+3gMLjJx4/8/gBpfD4lcevPH7j8QNK5/EHjz9w/HOVAWUShcfPPH7m8UtUQfErjx9+ZbUTpUeVSZSB4x8TY29SAwqPn3j8zONnHr9wpfL4lcdvPH5A6Tz+4PEHjn+skn0SCSg8fubxM49feMmAUnn8xuM3Hr8HFRZ/4PjHxHauTKTwvSQeP/P4mccvXKk8fuXxK49fePwcVCZSEo7/miX94Dr4l+AeUlj85x1mh0b6oIKIiIiIiIiICOcXwP6rieg16G4AAAAASUVORK5CYII=', 'wings': 'iVBORw0KGgoAAAANSUhEUgAAAY8AAAH0AQMAAAD/sTOmAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO/WQQAAAAJ0Uk5TAP9bkSK1AAACvUlEQVR4nO2aMXLbMBBFwYFn0IUnyPAoPEqOkZK8WXgDHyEsXaZzZmILoShZwnb/UWNX/9V+A+7uJ0gRTskYY4wxxhhjjDHGGGOMMcaYlEo9UWWqdYFKrXVlRt6UP0wpm/KXKeOmvDGlYqXjSuZKz5XhrFSkTLsyE2U3UGIu14USU7HScSVzZeDKhJWPUoBSuNJz5TtXRq5MWLk1TFcKV3qujFz5hZV79UeURVTyhJXCV9nurwkqP++rzJrRvWIlV6wUrlwSdmmAZtw2JKDcQym/K9T6/oAiPsXaHovP/b5RxLeLtmGLpjSGOMmuVbRFMlcKV9qGiZMcubIl+BkO//LH/8Dwz9Xfrk1TttmfJpaXtnpxe5240hpaKrtHlVlRQii1iBWu9FwJPZZSGauXlFi9FOSoSBGLDVsVJTZsUZSBD3/8irE07ztyj4OyKkrs8aIoscezosQeK0ZUtK0yjOVFUsJYtH0vlLIqRoj+aVaUJ97jA3tF6LEWytBjbSyhx9rjiFf/8INCWuXArh+HLynhntR6HBStxyEvK1cWrkjGkTexoVHEt90RV59+0LhsyhstpQ2y+IbYBln8edAqq6Z8zQ+9VtGM9A3HpY2Y+iGxUdSvtcNDyioqTZBnrMifUe+K/K16uikLVvTPuxNe5KaAb8gjXuRDIYcOV4V82h9YWBplBkqPS7mugj7Tj7TF11Gy0xO+SMLFXzZLdkST+XX1+Lr2scDTpgGGJe2ThIskXPz+DJu5wozzA4meG474qC3htOxxWZlSeI97fF3nuNDZj+9HzllnZnT1lQ4y8+oLV3pcytZjfJY94OvaNtf185XMqy9HGkbv+/NdDI2ObxUHEpb5/ZX5/zEcGEvmPc6/6Ua5KTjH+XnFCo9+hxuWOnwXG2OMMcYYY4wxxhhjjDHGGGOMMcYYY4wxn8B/ftb2kzUPo08AAAAASUVORK5CYII=', 'beak': 'iVBORw0KGgoAAAANSUhEUgAAAY8AAAH0AQMAAAD/sTOmAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO/WQQAAAAJ0Uk5TAP9bkSK1AAAAp0lEQVR4nO3UsQ2DQBBEURABZVAKpZnSKIUSHDqwvMB1MAQnWXov/8FpVjcMAAAAAAD8pfEdJ9M3T2pLk7mONFnqkyZrxY951S9NqupBsmXFeCV7lkxXcuRJeDJ3Eg5zJ+EwD5L5SsIt+yXhxbRky5M9T448yS6mJdnFtCSbvyXZMH2S+5LD+ccuyfAgWfP/Ysn/PgAAAAAAAAAAAAAAAAAAAAAA6OYEk7mB+IHxUFIAAAAASUVORK5CYII=', 'patterned': 'iVBORw0KGgoAAAANSUhEUgAAAY8AAAH0AQMAAAD/sTOmAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO/WQQAAAAJ0Uk5TAP9bkSK1AAAE+UlEQVR4nO3cPXLrOBAEYKkUKNQRcBRcazPgaDgKjrDhBq7HtfVDUkCzZ5qStcFiQtf7bKmnDempSB8OY8aMGTNmzJgxY8aMGTNmzJgx/7+5FJmEf2QSp6ySafpbFMdp+iOS8zRNVSOXb/KlkfhNpiKR9EO0nKfrKOJ0I0rO5xtRcg43ouQc70TI+S6ER3bUyelB/DFfZpK9JOgkzaR4ySzci1mevbsyZ50sgbn7HxfibcwSmHf9x0kmq8C8jbmsSXaRoJO4JsVF1sLXmOMTca3/rJOnwHyNeQrM15iokyfhasxzYK7GnBqSbXLRSWhIsUlsSLVJkkkbmKMxbWCOxpxbYq+/DcxB2sAcjWkDsxvTBWavvwvMJl1gNmlL6SBdYDbpAzNJL6yQQWAWAYFZpA+sGOIdv5LZJmrAoJT2D2kDc5yubWAOEhriOPbbwByvR+2zt8mOY69rWDVJ1zCbtIE5XiiiTlphV6w/9swf0v8Wm6QLzK5YF9iO1wmbdE/FrFgfmFmxPjCT9MdetUgXmH7sOUjqSDbEe15YrcfVB2ZWrH+dMEmfsVmxPmOzYn3GJukDsyoG1lINAtZiEfDyXQwC3u9YpM94z/sdQ+x4vwMytioGMrYqBjK2CMjYqljoiVWxqJPUk2qQXlh9AWuxCHrnmjlB71wNAtZiVSz0wqpY1Al4XEbFUMZGxVDGBkEZGxVDGVdOQMYWARlbFUs6AcKoGFqLUTG0FoOgtRgVQ2sxKhZ0EgExKpYA4RWDGXMCM66UoIyNvqCMDYIyNiqGMjYIytioGBK8YnAtnMC18IrBtfCKwbVwEhDhFYuIVEqSTpDgFYNr4X2Ba+EEroVXDBLeF7hJTgIivGIREd6XpBMYGK0Y3mRlBG+SErzJwghcCycBksxIhIQJvBZOoKAVw2uhFdtB8CZpxfAmacXwJikJkFRGIiSFkaQTKGjF8FpoX/BaKMFroRXDa6F9CTqJkNCKYUL7knQCBa3YxiYLIRubZARvklYMb5L2JegkQkErliChfcGPi5GNtbCKbayF9WVjLTtIJWRjk4WQoJOISSYkYULExiYZ2dgkq9jGJllfNtbCyMZaWMU2COvL+0glJGBSPkIyIRETIt5H6CmGCT3F0rsIfaHE5L9/oWzJV5BJuf2WFiKa0+Lr/oXsJ+Weh5/8bPD6ZNhTeSb1cDty6CafjrE/j29S3KRev5SM/4M+kds3D8ZHA08kX790Vj5HvJGj8okw/6eIOK9eXB+WzssqXyTO6z3XxHlVaeiW/9uk6CT7SJSX/yLxXh+d5OWvifdi39eI9ypkfflrUj5Csk+sz1fnD1kR7/J3kNVh6e3LiniXv+Oq9dcudK86KTrJv0dW56tTrIj7ZoqFuO/yCK8Q9800C3HfGLOQ6iXxFVJ0knXiFavzVSf+m29m4r8rSF/+S8R/I5W+/OV8LR8hWSdesZyvO+682kH8fZkPS//yZ+Jf/iukusl8vhad5I8Qt5jPV+G2wwcRbiHcQaLcl5kId10+SP1VkuS+zCTrxC/2EL0vD6Lc2qsv/7ifCH15kKqT4ien/STrxC8eRFn+SV/+jpunj/JaHqQI5CBnfCfazfNJDWzXTe1RDWzX3fZBDsz+WLOfkxzYdTHqX1sI+l9OOKmBHX6WmVUSxMC+56T+RYfv+UsnY8aMGTNmzJgxY8aMGTNmzJhPzL+iqORqawqvwAAAAABJRU5ErkJggg=='}\n"
     ]
    }
   ],
   "source": [
    "file_path = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'train', 'ordinary', 'n01531178_n01531178_3410_attr_dict.pkl')\n",
    "\n",
    "# Load the .pkl file\n",
    "with open(file_path, 'rb') as file:\n",
    "    data = pickle.load(file)\n",
    "\n",
    "# Print or inspect the loaded data\n",
    "\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1d48e963",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['entire-object', 'tail', 'wings', 'beak', 'patterned'])\n"
     ]
    }
   ],
   "source": [
    "print(data.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "1c3ced53",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "entire-object\n",
      "tail\n",
      "wings\n",
      "beak\n",
      "patterned\n"
     ]
    }
   ],
   "source": [
    "import base64\n",
    "import io\n",
    "\n",
    "\n",
    "for concept_name, base64_string in data.items():\n",
    "    # Decode the Base64 string\n",
    "    image_data = base64.b64decode(base64_string)\n",
    "\n",
    "    # Create an image object from the bytes\n",
    "    image = Image.open(io.BytesIO(image_data))\n",
    "\n",
    "    # You can now display it (if in a Jupyter notebook, for example)\n",
    "    print(concept_name)\n",
    "    # image.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "51efac31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "TRAIN_PATH = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'train', 'ordinary')\n",
    "file_path = os.path.join(TRAIN_PATH, 'n04552348_n04552348_27896_attr_labels.npy')\n",
    "\n",
    "npy_data = np.load(file_path)\n",
    "\n",
    "# Print or inspect the loaded data\n",
    "print(npy_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8de4027f",
   "metadata": {},
   "source": [
    "# Concept Encoding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "311ead6f",
   "metadata": {},
   "outputs": [],
   "source": [
    "TRAIN_IMG_PATH = os.path.join(PROJECT_ROOT, 'images', 'RIVAL10', 'train', 'images')\n",
    "\n",
    "train_mapping = {}\n",
    "\n",
    "idx = 0\n",
    "for filename in os.listdir(TRAIN_IMG_PATH):\n",
    "    if '.JPEG' in filename and '_mask' not in filename:\n",
    "        train_mapping[idx] = filename.replace('.JPEG', '')\n",
    "        idx += 1\n",
    "\n",
    "TEST_IMG_PATH = os.path.join(PROJECT_ROOT, 'images', 'RIVAL10', 'test', 'images')\n",
    "\n",
    "test_mapping = {}\n",
    "\n",
    "idx = 0\n",
    "for filename in os.listdir(TEST_IMG_PATH):\n",
    "    if '.JPEG' in filename and '_mask' not in filename:\n",
    "        test_mapping[idx] = filename.replace('.JPEG', '')\n",
    "        idx += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "97ad9e5d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(21098, 5286)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# print(data)\n",
    "len(train_mapping), len(test_mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "30fb469c",
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_concept_matrix(mapping, dir_path):\n",
    "    concept_matrix = np.zeros((len(mapping), 18))\n",
    "\n",
    "    for idx, instance in mapping.items():\n",
    "        concept_path = os.path.join(dir_path, instance + '_attr_labels.npy')\n",
    "\n",
    "        concept_data = np.load(concept_path)\n",
    "\n",
    "        concept_matrix[idx] = concept_data[0]\n",
    "\n",
    "    return concept_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d2a3e243",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_concept_matrix = get_concept_matrix(train_mapping, TRAIN_PATH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c3b50135",
   "metadata": {},
   "outputs": [],
   "source": [
    "TEST_PATH = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'test', 'ordinary')\n",
    "\n",
    "test_concept_matrix = get_concept_matrix(test_mapping, TEST_PATH)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4477fd95",
   "metadata": {},
   "source": [
    "# Label encoding\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2d853a3e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "\n",
    "def encode_labels_dict(classes_file, mapping):\n",
    "\n",
    "    # Load the JSON file\n",
    "    with open(classes_file, 'r') as f:\n",
    "        wnid_data = json.load(f)\n",
    "\n",
    "    # Extract the first part of the keys in mapping for comparison\n",
    "    mapping_wnids = {key: value.split('_')[0] for key, value in mapping.items()}\n",
    "\n",
    "    classes_dict = {}\n",
    "\n",
    "    for idx, wnid in mapping_wnids.items():\n",
    "        classes_dict[idx] = wnid_data[wnid]\n",
    "\n",
    "    return classes_dict\n",
    "\n",
    "classes_file = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'meta', 'wnid_to_class.json')\n",
    "classes_train = encode_labels_dict(classes_file, train_mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "12204072",
   "metadata": {},
   "outputs": [],
   "source": [
    "super_classes_file = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'meta', 'label_mappings.json')\n",
    "\n",
    "# Load the JSON file\n",
    "with open(super_classes_file, 'r') as f:\n",
    "    class_to_super_class = json.load(f)\n",
    "\n",
    "\n",
    "# class_to_super_class\n",
    "super_classes_train = {}\n",
    "\n",
    "for idx, curr_class in classes_train.items():\n",
    "    super_classes_train[idx] = class_to_super_class[curr_class][0]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "0085304c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(21098, 10)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import OneHotEncoder\n",
    "import numpy as np\n",
    "\n",
    "# Example dictionary\n",
    "# example_dict = {0: 'cat', 1: 'dog', 2: 'bird', 3: 'cat'}\n",
    "\n",
    "# Extract the values (categories) from the dictionary\n",
    "categories = list(super_classes_train.values())\n",
    "\n",
    "# Reshape the data to a 2D array as required by OneHotEncoder\n",
    "categories_array = np.array(categories).reshape(-1, 1)\n",
    "\n",
    "# Initialize and fit the OneHotEncoder\n",
    "encoder = OneHotEncoder(sparse_output=False)\n",
    "one_hot_encoded = encoder.fit_transform(categories_array)\n",
    "\n",
    "print(one_hot_encoded.shape)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "55be32b3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# concept processing\n",
    "from src.preprocessing.concept_processing import compute_class_level_concepts\n",
    "\n",
    "\n",
    "class_level_concepts = compute_class_level_concepts(train_concept_matrix, None, one_hot_encoded)\n",
    "\n",
    "RIVAL10_PATH = os.path.join(PROJECT_ROOT, 'output', 'RIVAL10')\n",
    "os.makedirs(RIVAL10_PATH, exist_ok=True)\n",
    "np.save(os.path.join(RIVAL10_PATH, 'class_level_concepts.npy'), class_level_concepts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b96c5940",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "File name: n03673027_n03673027_7137\n",
      "Of class:  ocean liner\n",
      "Of super class:  ship\n",
      "Has concepts:  ['entire-object', 'rectangular', 'metallic', 'wet', 'tall', 'long']\n",
      "Concept vector:  [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0.]\n"
     ]
    },
    {
     "data": {
      "image/jpeg": "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",
      "image/png": "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yPDn/z8WdrbLN64JCwt/+/lDRUP906dPEjLSjOys3Lz8v/+CBtKfvHj2588fbm5uQUFBaQFZcXFxUMefiZmPh5eDle0PeBae4e+/D+/fgsakwHsUQVNH//7++P3z56/f79/+/fbzBzMDA6gx+fMHCysTOyvr3z9/7t69C9oRCsLsnOzsHDzcHGxsLGxsrMzM3378+P/3LyMzM+P//99//mT494+Rhennz+9MLMxMrCzMjEwM/////fvv/z/QsCpyuCF355HZ0CADU6BwADPQCJqXoCTvGgXdToLmSBQuPKYhDFweg+uBKEMeMoNLDQYGM6hIA8UaIxMTA3g+8+v3b99+/rh7/97bd++k5eXefHzPycvz7dfPVx/eff3548O3b4ICwjKy8pq6ehwcoA10P378+Pbt24P7j378+PHz+4+/4BMc/v76DSr/fv8U4OX7/fPX95+/QHOd/xj+MTL9+c/w9x9ouP7Hz2/MoGEE0ApndjYWFibGnz9/s7Kys7FzMPz7//P3L4Z////8+8vEwMjGwf739x8WNlZOdg4OLk5Odg42DnD7lo3l959fjMwMzKysTMyMjKDtzP8he+/Am0WhAQxho5eoUEkCFM0TKAH7SZQmO7XBNZJoIc2Vg2aJQGvfQWmHgYHh8/dvb9++ffvpw6XLl1U11KVlZT58+vTrz29VTfXfv39Ly8owsYB2cbx59+7O/Xs/fvz4+/cvaIbp+w9Q0fsXdAATaFcnePnSz58/f//4+fPrFyYG5r///n//9fPn33+s7Gy8fAI8PDzvP338/fsnGwto+v3P75////75/uPr+3cf2di4uLhB+0Z+//7NysrKxgZaXMLPz8/CAjoAArKZCVy5c4GW6DMzsXGycnNzCvLy83JzszAxszIyMbGysDIx//0JWjBFefCBNvhhNQVXjOISx2oIZKYOIgXXCGdAxNFIXJ0qXLrIXleKZi/OkpimnSQGht+/wAvhmJn/gich3z55fPnyZQFRYU1NTS1dnf///3/58oWHj/fPnz8fP368cfvW/3/M3759+/z58/fv3//8/PXt27dPnz59+/IVdOTnnz+QlXWQkYFfv379/PZdkJfv7+8/oFF2FmYOLk4ONlZmhv+/fn7/9+sn478/v/78Y2EGdfZZ2JhZmBhYGJk+f/394xtolwhopd+fv//+/GVmZPrG/PXv37+M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gFIc6Kg3NlbQrDaov/IXVMyICQp///793bt3379/5+Dg4OXlZWPj+PX9JzMT63/Gfz9//Pzx7Rsj019eXm4hfsFfv37++PUDVCyBz7ID9ei5udlYQEkTdKEMeH3d////2dhAFxh///799OnTRkZGnz592rlz540bNz58+MDFxaWnBzoe58qVK5DLFSDHzkPGwiQlJd+/f//z508VFRUGBoaHD0E3ff379+/9+/dCQkKQxfmgeaOfP5WVlT98+PDt2zdxcfFbt25BVlFxc3M/f/5cXV394cPHzMzM2traRkZGkMmqz+B1+6SGG2bIQ0RAQ1kQFhoJyWdognQoQRmoVIKS6n6c6nG4BzNkICLwQRbQqQfgwSDQCR/g5cCfP39+9+7d169fOTk5+flBtfm3b19AU+RM4C1q/378+f+d6T/TPwbQwCdoGyboaFsGdjYOTg42BiZGZia2Xz//f//+8/fPX5BFG3/BdfevX7+ePn26ceNGERGRf//+vX37FjT4Ch55Bx08x8T07NkzMTExZmbm169BoweQq4/ev3//5s2b//////r1CzIg+uXLFxYWFsj8J2QBHujwkj+gQyIYGUHHKYIGKH7+ZGZmZmcHHWn34weoKSItLf327dtnz54pKSkxMjKCt+d/wZNOIKGESUJshAwtwdseoGIVV8RgGgERIVU9RBcmSWoOI9VeXObjModU9Zg+goiAzgADn5gMSaCgESJw5fX169c3b95AVv4KgO7KBo1KMjEzsHOAL0D684uZjYGPjfs/I9P////fffwA3mPJxsYK2m7+j+H/n99/QG3RXz+/fPn268d3SAUKOSTxx48fT58+NTQ05Obmfvjw4e/fv4WEQAPskNSmoqKip6cnJCTEysrKzw/awPT3719OTtDsKWQsnZeXl4uLS0VFBTJiz8rKysXFBVktCmmbCgkJ/fjx4/v37/z8/JKSkt++fZOSkvrz54+8vLyEhMTHj58hgwnv3r3j4+ODNDnga1AgYUIMCQkueAKFzCSDmqTHT58jRj9cDa6IpJY4rjYoLvPhDkNjUE09iW3Q339BF7LDx8MhA5asrKwXLlyANPsgQ+iQxp+gEO+Pn59BZxX/+fMPtB+X+d9/xn9//v35+x+0f4idg5UFdEHR96/fwZPvnDw8XNJSIn9+/RQREeHn5////7+AgMCvX7+uXr0qJiYm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",
      "text/plain": [
       "<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=224x224>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = 13\n",
    "\n",
    "print('File name:', train_mapping[idx])\n",
    "print(\"Of class: \", classes_train[idx])\n",
    "print(\"Of super class: \", super_classes_train[idx])\n",
    "\n",
    "file_path = os.path.join(TRAIN_PATH, train_mapping[idx] + '_attr_dict.pkl')\n",
    "img_path = os.path.join(TRAIN_IMG_PATH, train_mapping[idx] + '.JPEG')\n",
    "\n",
    "# Load the .pkl file\n",
    "with open(file_path, 'rb') as file:\n",
    "    concepts = pickle.load(file)\n",
    "\n",
    "print(\"Has concepts: \", list(concepts.keys()))\n",
    "print(\"Concept vector: \", train_concept_matrix[idx])\n",
    "\n",
    "Image.open(img_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b700b3b1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "ed012e16",
   "metadata": {},
   "source": [
    "# Image Processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c21a7ec9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "import os\n",
    "from tqdm import tqdm\n",
    "\n",
    "import torchvision.transforms as transforms\n",
    "import math\n",
    "\n",
    "from src.utils import *\n",
    "\n",
    "\n",
    "def _get_transform_pipeline(use_training_transforms, resol, resnet=False):\n",
    "    # resized_resol - resizes to slightly larger to ensure image is large enough before cropping to resol\n",
    "    resized_resol = int(resol * 256/224) # 299 * 256/224 = 341.7\n",
    "    if resnet:\n",
    "        mean = [0.485, 0.456, 0.406]\n",
    "        std = [0.229, 0.224, 0.225]\n",
    "    else: # shifts from [0.0, 1.0] -> [-0.25, 0.25]\n",
    "        mean = [0.5,0.5,0.5]\n",
    "        std = [2,2,2]\n",
    "    if use_training_transforms:\n",
    "        # print(\"Using TRAINING transformations:\")\n",
    "        return transforms.Compose([\n",
    "            transforms.ColorJitter(brightness=32/255, saturation=(0.5, 1.5)),\n",
    "            transforms.RandomResizedCrop(resol),\n",
    "            transforms.RandomHorizontalFlip(),\n",
    "            transforms.ToTensor(),\n",
    "            transforms.Normalize(mean = mean, std = std)\n",
    "            ])\n",
    "    # Use LANCZOS resampling for better quality\n",
    "    # print(\"Using VALIDATION/TEST transformations:\")\n",
    "    return transforms.Compose([\n",
    "        transforms.Resize(resized_resol, interpolation=transforms.InterpolationMode.LANCZOS),\n",
    "        transforms.CenterCrop(resol),\n",
    "        transforms.ToTensor(), # divide by 255, convert from [0,255] -> [0.0,1.0]\n",
    "        transforms.Normalize(mean = mean, std = std)\n",
    "        ])\n",
    "\n",
    "\n",
    "def _get_all_filenames(input_dir, all_img_names):\n",
    "    all_image_paths = []\n",
    "\n",
    "    for img_name in all_img_names:\n",
    "        all_image_paths.append(os.path.join(input_dir, img_name+'.JPEG'))\n",
    "\n",
    "    return all_image_paths\n",
    "\n",
    "\n",
    "def _get_filename_from_path(path):\n",
    "    parent_folder = os.path.basename(os.path.dirname(path))\n",
    "    filename = os.path.basename(path)\n",
    "    return os.path.join(parent_folder, filename)\n",
    "\n",
    "\n",
    "def load_and_transform_images(input_dir, resol, use_training_transforms, all_img_names, batch_size = 64, resnet=False, verbose = False):\n",
    "    transform_pipeline = _get_transform_pipeline(use_training_transforms, resol, resnet)\n",
    "\n",
    "    # Get all image paths\n",
    "    all_image_paths = _get_all_filenames(input_dir, all_img_names)\n",
    "\n",
    "    vprint(f\"Found {len(all_image_paths)} images.\", verbose)\n",
    "    num_batches = math.ceil(len(all_image_paths) / batch_size)\n",
    "    vprint(f\"Processing in {num_batches} batches of size {batch_size} (for progress reporting)...\", verbose)\n",
    "\n",
    "    all_transformed_tensors = []\n",
    "    all_processed_paths = []\n",
    "    processed_count = 0\n",
    "\n",
    "    for i in tqdm(range(num_batches), desc=\"Processing batches\", disable=not verbose):\n",
    "        batch_paths = all_image_paths[i * batch_size : (i + 1) * batch_size]\n",
    "\n",
    "        for img_path in batch_paths:\n",
    "            img = Image.open(img_path).convert('RGB')\n",
    "            # Apply transformations\n",
    "            transformed_img_tensor = transform_pipeline(img)\n",
    "            # Append the tensor and its path to the lists\n",
    "            all_transformed_tensors.append(transformed_img_tensor)\n",
    "            img_path = _get_filename_from_path(img_path)\n",
    "            all_processed_paths.append(img_path)\n",
    "            processed_count += 1\n",
    "\n",
    "    vprint(f\"\\nFinished processing.\", verbose)\n",
    "    vprint(f\"Successfully transformed: {processed_count} images.\", verbose)\n",
    "\n",
    "    # Return the list of all tensors and their paths\n",
    "    return all_transformed_tensors, all_processed_paths\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "1b31b1d1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 21098 images.\n",
      "Processing in 330 batches of size 64 (for progress reporting)...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Processing batches:  56%|█████▌    | 184/330 [00:26<00:21,  6.91it/s]\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mKeyboardInterrupt\u001b[39m                         Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[18]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m train_images = \u001b[43mload_and_transform_images\u001b[49m\u001b[43m(\u001b[49m\u001b[43mTRAIN_IMG_PATH\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m224\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_mapping\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mverbose\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 72\u001b[39m, in \u001b[36mload_and_transform_images\u001b[39m\u001b[34m(input_dir, resol, use_training_transforms, all_img_names, batch_size, resnet, verbose)\u001b[39m\n\u001b[32m     69\u001b[39m batch_paths = all_image_paths[i * batch_size : (i + \u001b[32m1\u001b[39m) * batch_size]\n\u001b[32m     71\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m img_path \u001b[38;5;129;01min\u001b[39;00m batch_paths:\n\u001b[32m---> \u001b[39m\u001b[32m72\u001b[39m     img = \u001b[43mImage\u001b[49m\u001b[43m.\u001b[49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimg_path\u001b[49m\u001b[43m)\u001b[49m.convert(\u001b[33m'\u001b[39m\u001b[33mRGB\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m     73\u001b[39m     \u001b[38;5;66;03m# Apply transformations\u001b[39;00m\n\u001b[32m     74\u001b[39m     transformed_img_tensor = transform_pipeline(img)\n",
      "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/career/lab_ujm/test_reproducibility/venv_test/lib/python3.11/site-packages/PIL/Image.py:3505\u001b[39m, in \u001b[36mopen\u001b[39m\u001b[34m(fp, mode, formats)\u001b[39m\n\u001b[32m   3502\u001b[39m     filename = os.fspath(fp)\n\u001b[32m   3504\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m filename:\n\u001b[32m-> \u001b[39m\u001b[32m3505\u001b[39m     fp = builtins.open(filename, \u001b[33m\"\u001b[39m\u001b[33mrb\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m   3506\u001b[39m     exclusive_fp = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m   3507\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n",
      "\u001b[31mKeyboardInterrupt\u001b[39m: "
     ]
    }
   ],
   "source": [
    "train_images = load_and_transform_images(TRAIN_IMG_PATH, 224, True, train_mapping.values(), verbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64e5462f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7c88ea0f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Concept matrix shape: (21098, 18)\n",
      "Sampling 20 images to identify all concepts...\n",
      "\n",
      "Found 18 unique concepts across the dataset:\n",
      "1. beak\n",
      "2. colored-eyes\n",
      "3. ears\n",
      "4. entire-object\n",
      "5. floppy-ears\n",
      "6. hairy\n",
      "7. horns\n",
      "8. long\n",
      "9. long-snout\n",
      "10. metallic\n",
      "11. patterned\n",
      "12. rectangular\n",
      "13. tail\n",
      "14. tall\n",
      "15. text\n",
      "16. wet\n",
      "17. wheels\n",
      "18. wings\n",
      "\n",
      "Concept matrix has 18 columns, which should match the number of concepts.\n"
     ]
    }
   ],
   "source": [
    "import pickle\n",
    "import os\n",
    "import numpy as np\n",
    "from src.config import PROJECT_ROOT\n",
    "\n",
    "# First, let's understand the structure of the concept matrix\n",
    "print(f\"Concept matrix shape: {train_concept_matrix.shape}\")  # Should be (num_samples, num_concepts)\n",
    "\n",
    "# Now, get a comprehensive list of all concepts by sampling multiple files\n",
    "TRAIN_PATH = os.path.join(PROJECT_ROOT, 'data', 'RIVAL10', 'train', 'ordinary')\n",
    "\n",
    "# Sample a few images to collect all possible concepts\n",
    "all_concepts = set()\n",
    "sample_count = min(20, len(train_mapping))  # Sample up to 20 images or all if fewer\n",
    "\n",
    "print(f\"Sampling {sample_count} images to identify all concepts...\")\n",
    "for i in range(sample_count):\n",
    "    idx = list(train_mapping.keys())[i]\n",
    "    instance_name = train_mapping[idx]\n",
    "    concept_path = os.path.join(TRAIN_PATH, instance_name + '_attr_dict.pkl')\n",
    "\n",
    "    with open(concept_path, 'rb') as f:\n",
    "        concept_dict = pickle.load(f)\n",
    "        all_concepts.update(concept_dict.keys())\n",
    "\n",
    "# Print all unique concepts found across the sampled images\n",
    "print(f\"\\nFound {len(all_concepts)} unique concepts across the dataset:\")\n",
    "for idx, concept_name in enumerate(sorted(all_concepts)):\n",
    "    print(f\"{idx+1}. {concept_name}\")\n",
    "\n",
    "# Verify this matches the concept matrix dimensions\n",
    "print(f\"\\nConcept matrix has {train_concept_matrix.shape[1]} columns, which should match the number of concepts.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "376214b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ears, hairy, wings, wet, wheels, metallic"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
